<?php 
// 在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前
//也就是命名空间只能定义在一个单独的文件中,且这个文件不能写其他代码，，只能设置declare相关语句

//和其他语言一样，PHP引入命名空间也主要是为了解决名字冲突的问题。
// declare(encoding='UTF-8');
namespace MynameSpace{
 
  class Clean {

  	  	function remove() {

  		echo __CLASS__,"    ",__FUNCTION__,"<br>";
  	   }

  }
}

// 如果想定义一个属于全局空间的代码块，也是使用namespace关键字，但是后面不加命名空间的名字
//如果没有定义任何命名空间，所有的类与函数的定义都是在全局空间，我们一般的代码都写在全局命名空间中
// 在名称前加上前缀 "\"" 表示该名称是全局空间中的名称，即使该名称位于其它的命名空间中时也是如此
//对于函数和常量来说，如果当前命名空间中不存在该函数或常量，PHP 会退而使用全局空间中的函数或常量

// 命名空间名称定义
// 非限定名称Unqualified name
// 名称中不包含命名空间分隔符的标识符，例如 Foo

// 限定名称Qualified name
// 名称中含有命名空间分隔符的标识符，例如 Foo\Bar

// 完全限定名称Fully qualified name
// 名称中包含命名空间分隔符，并以命名空间分隔符开始的标识符，例如 \Foo\Bar。 namespace\Foo 也是一个完全限定名称。
  namespace {
    
   /**
   * 
   */
   class GloadleClass
   {
   	  function destributeSelf () {

   	  	echo "我是没带名字的命名空间类",__CLASS__,"    ",__FUNCTION__,"<br>";
   	  }
   

   }


  }
?>